#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<cstring>
#include<cerrno>
using namespace std;


int main()
{
    
    int a  =10;
    int b = a/0;
    return 0;
}


// void handler(int sigon)
// {
//     cout<<"catch signal:"<<sigon<<endl;
//     exit(1);
// }
// int main()
// {
//     signal(SIGSEGV,handler);
//     int* a =nullptr;
//     *a =100;
//     return 0;
// }







// int g_cnt = 0;
// void handler(int signo)
// {
//     cout<<"alarm clock!"<<endl;
//     int n = alarm(2);
//     cout<<"剩余时间:"<<n<<endl;
// }

// int main()
// {
//     signal(SIGALRM,handler);
//     alarm(100);
//     while(true){
//         cout<<"g_cnt,"<<g_cnt<<"pid"<<getpid()<<endl;
//         sleep(1);
//         g_cnt++;
//     }
//     return 0;
// }





// int main()
// {
//     int count =0;
//     while (true)
//     {
//         cout<<"count:"<<count<<endl;
//         count++;
//         sleep(1);
//         if(count==3){
//             raise(SIGSTOP);
//         }
//     }
//     return 0;
// }












// // mykill -9 pid
// int main(int argc,char* argv[])
// {
//     if(argc!=3){
//         cout<<"Usage: "<<argv[0]<<" -signo pid"<<endl;
//     }
//     int signo = stoi(argv[1] +1);
//     int pid = stoi(argv[2]);
//     int n = kill(pid,signo);
//     if(n<0){
//         cout<<"kill error, String error"<<errno<<strerror(errno)<<endl;
//     }
//     return 0;
// }


















// void handler(int signo)
// {
//     // 简单的打印
//     cout<<"get a signal: num is "<<signo<<endl;
// }
// int main()
// {
//     // 只要接收到了2号信号,这个handler方法才会被执行.
//     signal(SIGINT,handler);
//     while(true){
//         cout<<"hello world,pid:"<<getpid()<<endl;  
//         sleep(1);
//     }
//     return 0;
// }
